package com.cskaoyan.javase.array.memory4;

/**
 * @description: 练习2
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * 分别静态、动态初始化两个数组，分别输出数组名及元素
 * 然后分别给数组中的元素赋值，分别再次输出数组名及元素
 *
 * 堆上的对象（数组），如果是new生成的两个对象，是完全独立的，互不干涉的
 *
 */
public class Demo6 {
    public static void main(String[] args) {
        //分别静态、动态初始化两个数组
        int[] arr1 = {1,2,3};
        int[] arr2 = new int[3];

        //不同的数组，地址值不同
        //以后我们使用new关键字创建对象，两个语句，地址一定不同，一定是创建了两个对象
        System.out.println(arr1);
        System.out.println(arr2);

        //分别输出元素
        System.out.println(arr1[0]);//1
        System.out.println(arr1[1]);//2
        System.out.println(arr1[2]);//3

        System.out.println(arr2[0]);//0
        System.out.println(arr2[1]);//0
        System.out.println(arr2[2]);//0

        //分别给两个数组元素赋值
        arr1[0] = 100;
        arr1[1] = 200;
        arr1[2] = 300;

        arr2[0] = 123;
        arr2[1] = 456;
        arr2[2] = 789;

        System.out.println("-------------------------");

        System.out.println(arr1); //赋值完后，数组地址值不变的
        System.out.println(arr2);

        //分别输出元素
        System.out.println(arr1[0]);//100
        System.out.println(arr1[1]);//200
        System.out.println(arr1[2]);//300

        System.out.println(arr2[0]);//123
        System.out.println(arr2[1]);//456
        System.out.println(arr2[2]);//789


    }
}
